<?php
/** 
 * @brief 多语言类 
 */
class I18n {
    /**
     * 设置语言类型 
     * 
     * @param string $lang 语言类型
     * 
     * @return void
     */
    public static function setLang($lang) {
        $file = trim_path(APP_PATH . '/application/languages/' . $lang . '.php');
        if (file_exists($file)) {
            Session::set('lang', $lang);
            Yaf_Registry::set('I18n', include_once $file);
        } else {
            throw new Exception("Language file '$file' was not found");
        }
    }
    
    /**
     * 取得当前的语言类型 
     *
     * @return string
     */
    public static function getLang() {
        return Session::get('lang');
    }

    /**
     * 取得语言包中某个变量的值
     * 
     * @param string $name 变量名
     * 
     * @return string
     */
    public static function get($name) {
        $I18n = Yaf_Registry::get('I18n');
        return isset($I18n[$name]) ? $I18n[$name] : sprintf("{{%s}}", $name);
    }
}
